Term-Graph Anti-Unification∗
نویسندگان
چکیده
We study anti-unification for possibly cyclic, unranked term-graphs and develop an algorithm, which computes a minimal complete set of least general generalizations for them. For bisimilar graphs the algorithm computes the join in the lattice generated by a functional bisimulation. Besides, we consider the case when the graph edges are not ordered (modeled by commutativity). These results generalize anti-unification for ranked and unranked terms to the corresponding term-graphs, and solve also anti-unification problems for rational terms and dags. Our results open a way to widen anti-unification based code clone detection techniques from a tree representation to a graph representation of the code.
منابع مشابه
Anti-unification Algorithms and Their Applications in Program Analysis
A term t is called a template of terms t1 and t2 iff t1 = tη1 and t2 = tη2, for some substitutions η1 and η2. A template t of t1 and t2 is called the most specific iff for any template t′ of t1 and t2 there exists a substitution ξ such that t = t ′ξ. The anti-unification problem is that of computing the most specific template of two given terms. This problem is dual to the well-known unificatio...
متن کاملRank 2 Types for Term Graph Rewriting Extended
We define a notion of type assignment with polymorphic intersection types of rank 2 for a term graph rewriting language that expresses sharing and cycles. We show that type assignment is decidable through defining, using the extended notion of unification from [5], a notion of principal pair which generalizes ml’s principal type property.
متن کاملRank 2 Types for Term Graph Rewriting
We define a notion of type assignment with polymorphic intersection types of rank 2 for a term graph rewriting language that expresses sharing and cycles. We show that type assignment is decidable through defining, using the extended notion of unification from [5], a notion of principal pair which generalizes ml’s principal type property.
متن کاملSource-tracking Unification using semi-Dyck labeled reachability
We propose a path-based framework for deriving and simplifying source-tracking information for first-order term unification in the empty theory. Such a framework is useful for diagnosing unification-based systems, including debugging of type errors in programs and the generation of success and failure proofs in logic programming. The objects of source-tracking are deductions in the logic of ter...
متن کاملProgress Report: Term Dags Using Stobjs
We explore in this paper the use of efficient data structures to implement operations on first-order terms, that can be formally verified. Specifically, we present the status of our work on defining and verifying a unification algorithm acting on terms represented as directed acyclic graphs (dags). This implementation is done using single threaded objects (stobjs) to store a dag representing th...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2018